package com.fzrskj.cloud.free.core.enums;

/**
 * ProductTypeEnum.
 *
 * @author zj.
 *         Created on 2018/9/21 0021.
 */
public enum  ProductTypeEnum {
    /**
     * 云产品.
     */
    CLOUD("cloud", "云主机"),
    /**
     * 域名.
     */
    DOMAIN("domain", "域名"),
    /**
     * 虚拟主机.
     */
    V_HOST("vhost", "虚拟主机"),
    /**
     * 自定义产品
     */
    DIY("diy", "自定义产品");

    /**
     * 产品分类标识
     */
    private String tag;

    /**
     * 产品分类名称.
     */
    private String name;

    /**
     * 构造.
     * @param tag tag.
     * @param name name.
     */
    ProductTypeEnum(String tag, String name) {
        this.tag = tag;
        this.name = name;
    }

    /**
     * 获取标识.
     * @return tag.
     */
    public String getTag() {
        return this.tag;
    }

    /**
     * 获取名称.
     * @return name.
     */
    public String getName() {
        return this.name;
    }

    /**
     * 是否等于.
     * @param comparisonTag comparison tag value.
     * @return
     */
    public Boolean equals(String comparisonTag) {
        return this.tag.equals(comparisonTag);
    }

    /**
     * 获取产品名称.
     * @param tag tag.
     * @return 名称.
     */
    public static String getName(String tag) {
        for (ProductTypeEnum typeEnum : ProductTypeEnum.values()) {
            if (typeEnum.getTag().equals(tag)) {
                return typeEnum.getName();
            }
        }
        return null;
    }

    /**
     * 通过tag反查enum.
     * @param tag tag.
     * @return self.
     */
    public static ProductTypeEnum getByTag(String tag) {
        for (ProductTypeEnum typeEnum : ProductTypeEnum.values()) {
            if (typeEnum.getTag().equals(tag)) {
                return typeEnum;
            }
        }
        return null;
    }
}
